winsafe\dxgi\com_interfaces/
idxgisurface.rs1#![allow(non_camel_case_types, non_snake_case)]
2
3use crate::co;
4use crate::decl::*;
5use crate::dxgi::vts::*;
6use crate::kernel::privs::*;
7use crate::ole::privs::*;
8use crate::prelude::*;
9
10com_interface! { IDXGISurface: "cafcb56c-6ac3-4889-bf47-9e23bbd260ec";
11 }
18
19impl dxgi_IDXGISurface for IDXGISurface {}
20impl dxgi_IDXGIDeviceSubObject for IDXGISurface {}
21impl dxgi_IDXGIObject for IDXGISurface {}
22
23pub trait dxgi_IDXGISurface: dxgi_IDXGIDeviceSubObject {
32 #[must_use]
35 fn GetDesc(&self) -> HrResult<DXGI_SURFACE_DESC> {
36 let mut desc = DXGI_SURFACE_DESC::default();
37 ok_to_hrresult(unsafe {
38 (vt::<IDXGISurfaceVT>(self).GetDesc)(self.ptr(), pvoid(&mut desc))
39 })
40 .map(|_| desc)
41 }
42
43 #[must_use]
46 fn Map(&self, map_flags: co::DXGI_MAP) -> HrResult<DXGI_MAPPED_RECT> {
47 let mut mr = DXGI_MAPPED_RECT::default();
48 ok_to_hrresult(unsafe {
49 (vt::<IDXGISurfaceVT>(self).Map)(self.ptr(), pvoid(&mut mr), map_flags.raw())
50 })
51 .map(|_| mr)
52 }
53
54 fn_com_noparm! { Unmap: IDXGISurfaceVT;
55 }
58}